지금까지 우리는 변수에 숫자, 문자열, 리스트 등의 값을 마음대로 넣어서 사용해 왔다. 그러나 프로그램이 실행되려면 컴퓨터는 각 변수에 어떤 종류의 값이 들어가 있는지 알아야 한다. 값을 저장하는 방식이나 계산하는 방법이 다르기 때문이다.
이러한 값의 종류를 자료형(data type) 혹은 단순히 타입(type)이라고 한다.
예를 들어 정수인 1과 문자열인 "1"이 컴퓨터에 저장될 때 어느 정도의 메모리를 차지하는지 알아보면 두 값의 저장 방식이 다르다는 것을 알 수 있다. 파이썬에서 변수의 메모리 크기를 알기 위해서는 sys
패키지의 getsizeof
명령을 사용한다.
In [17]:
from sys import getsizeof
In [19]:
a = 1
getsizeof(a)
Out[19]:
In [20]:
b = "1"
getsizeof(b)
Out[20]:
파이썬에서 사용할 수 있는 자료형 중 많이 사용하는 것은 다음과 같다.
변수나 값의 자료형을 알아보기 위해서는 type
명령을 사용하면 된다.
변수가 비어있음을 표시할 때는 None 타입을 사용한다.
In [21]:
type(None)
Out[21]:
In [22]:
type(True)
Out[22]:
In [23]:
type(1)
Out[23]:
In [24]:
type(3.14)
Out[24]:
복소수를 사용할 때는 허수부 숫자 뒤에 j문자를 붙인다.
In [33]:
type(2 + 3j)
Out[33]:
In [26]:
type("abc")
Out[26]:
In [27]:
type(u"abc")
Out[27]:
In [29]:
type((1, 2, 3))
Out[29]:
In [30]:
type([1, 2, 3])
Out[30]:
In [31]:
type({"A": 10, "B": 20, "C": 30})
Out[31]:
파이썬에서는 함수도 독자적인 자료형을 가진다. 파이썬에서 함수의 자료형 이름은 function 이다.
In [34]:
def f():
return 1
type(f)
Out[34]:
파이썬에서 자료형과 클래스는 같은 의미이다. 클래스를 알기 위해서는 __class__
속성을 살펴보면 된다.
In [35]:
a = 1
In [36]:
type(a)
Out[36]:
In [37]:
a.__class__
Out[37]:
In [38]:
b = [1, 2, 3]
In [39]:
type(b)
Out[39]:
In [40]:
b.__class__
Out[40]:
In [43]:
class C(object):
pass
c = C()
위 코드에서 pass
키워드는 아무런 일도 하지 않는 들여쓰기 블럭을 만들기 위한 것이다.
In [44]:
type(c)
Out[44]:
In [46]:
c.__class__
Out[46]:
클래스 이름앞의 __main__
은 클래스가 정의된 모듈(module) 이름이다.